
/**
 * 写一段同步程序可以指定创建的文件个数于内容
 * 优化点：
 *       很多同步在一个函数内,实现了所有功能(尽可能实现单一职责)
 *       目录都在当前目录

*/

let fs = require("fs");

let createFile = {

    /**
     * 创建目录
     * @param {} dirname 
     */
    createDir: function (dirname) {
        //目录是否创建？
        if (fs.existsSync(dirname)) return;
        fs.mkdirSync(dirname);
    },
    /**
     * 根据个数呢去创建内容
     * @param {*} num 
     */
    createConent: function (num) {
        /**
         * 未考虑异常 todo
         * number 转成 string 
         */
        return num + '';
    },
    /**
     * 创建文件名
     * @param {*} dir 
     * @param {*} num 
     */
    createFileName:function(dir,num){
        /**
         * 异常未考虑
         */
       return dir+'/2022_2_24_'+num+'.txt';
    },
    createFile:function(fileName,content){
        /**
         * flags:标识 r 只读 w 可写  a(apppend) 追加 不会删除原有的数据
         */
        /**
         * 打开(创建)文件
         */
        let fd=fs.openSync(fileName,'a');
        /**
         * 写入内容跟
         */
        fs.writeSync(fd,content);
        /**
         * 关闭
         */
        fs.closeSync(fd);


    },
    /**
     * 业务处理流程
     * @param {*} dir 
     * @param {*} num 
     */
    handle:function(dir,num){
        this.createDir(dir);
        for(let i=1;i<=num;i++){
            let fileName = this.createFileName(dir,i);
            let content = this.createConent(i);
            this.createFile(fileName,content);
        }

    }


}

createFile.handle('./files',10);